/* Copyright (c) 2004-2024 peigen.info. All rights reserved. */

package info.peigen.hotpot.manage.core.manage.form;

import info.peigen.hotpot.common.core.enums.YesOrNo;
import info.peigen.hotpot.common.service.base.manage.ManageFormBase;
import info.peigen.hotpot.manage.core.enums.ResourceCategory;
import info.peigen.hotpot.manage.core.enums.ResourceMenuType;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.Size;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

/**
 * <b>(ResourceEditForm)</b>
 * 管理后台 修改"资源"
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2024-08-02
 */
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class ResourceEditForm extends ManageFormBase {
    @ApiModelProperty(value = "资源Id", position = 1)
    @Size(max = 30, message = "[资源Id]超长")
    String           resourceId;
    @ApiModelProperty(value = "父Id", position = 2)
    @Size(max = 30, message = "[父Id]超长")
    String           parentId;
    @ApiModelProperty(value = "标题", position = 3)
    @Size(max = 30, message = "[标题]超长")
    String           title;
    @ApiModelProperty(value = "别名", position = 4)
    @Size(max = 30, message = "[别名]超长")
    String           name;
    @ApiModelProperty(value = "编码", position = 5)
    @Size(max = 30, message = "[编码]超长")
    String           code;
    @ApiModelProperty(value = "分类", position = 6)
    ResourceCategory category;
    @ApiModelProperty(value = "模块", position = 7)
    @Size(max = 30, message = "[模块]超长")
    String           module;
    @ApiModelProperty(value = "菜单类型", position = 8)
    ResourceMenuType menuType;
    @ApiModelProperty(value = "路径", position = 9)
    @Size(max = 100, message = "[路径]超长")
    String           path;
    @ApiModelProperty(value = "组件", position = 10)
    @Size(max = 30, message = "[组件]超长")
    String           component;
    @ApiModelProperty(value = "图标", position = 11)
    @Size(max = 30, message = "[图标]超长")
    String           icon;
    @ApiModelProperty(value = "颜色", position = 12)
    @Size(max = 30, message = "[颜色]超长")
    String           color;
    @ApiModelProperty(value = "是否可见", position = 13)
    YesOrNo          visible;
    @ApiModelProperty(value = "排序序号", position = 14)
    Integer          sort;
    @ApiModelProperty(value = "扩展信息", position = 15)
    @Size(max = 1000, message = "[扩展信息]超长")
    String           ext;
}